
/* 1.0 创建服务器 */
const express = require('express')
const path = require('path')
const app = express()
const pjwt = require('express-jwt')
//引用路由模块
const router = require('./router')
//引入body-parser模块
const bodyParser = require('body-parser')

/* 2.0 设置监听端口 */
app.listen(3002, () => {
  console.log('http://127.0.0.1:3002');
})

//添加body-parser中间件
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: false }))

/* 3.0 托管静态页面 首页 */
app.use('/', express.static(path.join(__dirname, '/views')))

/* 4.0 托管静态资源 */
app.use(express.static('public'))

//添加对token的解析和排除不需要token验证的路由
app.use(pjwt({
  secret: 'hero',
  algorithms: ['HS256']
}).unless({ path: ['/login'] }))


/* 5.0 引用路由功能 */
app.use(router)

/* 6.0 错误处理中间件 (写在路由器的后面) */
app.use((err, req, res, next) => {
  // console.log(err.name);

  //错误是由token 解析失败导致的
  if (err.name === 'UnauthorizedError') {
    return res.send({ code: 401, message: '无效的token' })
  }
  res.send({
    code: 500,
    message: '未知的错误'
  })
})